<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>ARWrapper: VideoSource Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">ARWrapper
   </div>
   <div id="projectbrief">Provides a C++ wrapper around ARToolKit and exposes a C and JNI API</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="class_video_source-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">VideoSource Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Base class for different video source implementations.  
 <a href="class_video_source.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_video_source_8h_source.html">VideoSource.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for VideoSource:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_video_source.png" usemap="#VideoSource_map" alt=""/>
  <map id="VideoSource_map" name="VideoSource_map">
<area href="class_android_video_source.html" title="Video input implementation for Android." alt="AndroidVideoSource" shape="rect" coords="0,56,141,80"/>
<area href="class_a_r_tool_kit_video_source.html" title="Video source implementation using the ARToolKit arVideo module." alt="ARToolKitVideoSource" shape="rect" coords="151,56,292,80"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a8eb957864ca6d7c17532a7a5926024d2"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a8eb957864ca6d7c17532a7a5926024d2">~VideoSource</a> ()</td></tr>
<tr class="separator:a8eb957864ca6d7c17532a7a5926024d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdcbad266f06a6ee07ecb8ce2873e871"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#afdcbad266f06a6ee07ecb8ce2873e871">getError</a> ()</td></tr>
<tr class="separator:afdcbad266f06a6ee07ecb8ce2873e871"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8936c5ae65f673316a994e97c00caf82"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a8936c5ae65f673316a994e97c00caf82">isOpen</a> ()</td></tr>
<tr class="memdesc:a8936c5ae65f673316a994e97c00caf82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the video source is open.  <a href="#a8936c5ae65f673316a994e97c00caf82">More...</a><br/></td></tr>
<tr class="separator:a8936c5ae65f673316a994e97c00caf82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00107388291e281660e316699f699e47"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a00107388291e281660e316699f699e47">isRunning</a> ()</td></tr>
<tr class="memdesc:a00107388291e281660e316699f699e47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the video source is open and ready to be queried.  <a href="#a00107388291e281660e316699f699e47">More...</a><br/></td></tr>
<tr class="separator:a00107388291e281660e316699f699e47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c08a6152d930c5504444e13e6c12b11"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a8c08a6152d930c5504444e13e6c12b11">configure</a> (const char *vconf, const char *cparaName, const char *cparaBuff, size_t cparaBuffLen)</td></tr>
<tr class="memdesc:a8c08a6152d930c5504444e13e6c12b11"><td class="mdescLeft">&#160;</td><td class="mdescRight"><pre class="fragment">Sets initial parameters which will be used when the video source
</pre><p> is opened.  <a href="#a8c08a6152d930c5504444e13e6c12b11">More...</a><br/></td></tr>
<tr class="separator:a8c08a6152d930c5504444e13e6c12b11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4cb10a2276edfe49376ac666a05f1f3c"><td class="memItemLeft" align="right" valign="top">ARParamLT *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a4cb10a2276edfe49376ac666a05f1f3c">getCameraParameters</a> ()</td></tr>
<tr class="memdesc:a4cb10a2276edfe49376ac666a05f1f3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the camera parameters for the video source.  <a href="#a4cb10a2276edfe49376ac666a05f1f3c">More...</a><br/></td></tr>
<tr class="separator:a4cb10a2276edfe49376ac666a05f1f3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac59ab12ce7c377df421e8c4d80e6f013"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#ac59ab12ce7c377df421e8c4d80e6f013">getVideoWidth</a> ()</td></tr>
<tr class="memdesc:ac59ab12ce7c377df421e8c4d80e6f013"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the width of the video in pixels.  <a href="#ac59ab12ce7c377df421e8c4d80e6f013">More...</a><br/></td></tr>
<tr class="separator:ac59ab12ce7c377df421e8c4d80e6f013"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb3abb2d4c5a9b5c1430ac4a93e41df6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#acb3abb2d4c5a9b5c1430ac4a93e41df6">getVideoHeight</a> ()</td></tr>
<tr class="memdesc:acb3abb2d4c5a9b5c1430ac4a93e41df6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the height of the video in pixels.  <a href="#acb3abb2d4c5a9b5c1430ac4a93e41df6">More...</a><br/></td></tr>
<tr class="separator:acb3abb2d4c5a9b5c1430ac4a93e41df6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a259eb37d6fc60aafb18f5f4343c7f445"><td class="memItemLeft" align="right" valign="top">AR_PIXEL_FORMAT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a259eb37d6fc60aafb18f5f4343c7f445">getPixelFormat</a> ()</td></tr>
<tr class="memdesc:a259eb37d6fc60aafb18f5f4343c7f445"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the pixel format of the video.  <a href="#a259eb37d6fc60aafb18f5f4343c7f445">More...</a><br/></td></tr>
<tr class="separator:a259eb37d6fc60aafb18f5f4343c7f445"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb198b8fd8c0fb9556f37c70c0874f62"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#afb198b8fd8c0fb9556f37c70c0874f62">getName</a> ()=0</td></tr>
<tr class="memdesc:afb198b8fd8c0fb9556f37c70c0874f62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of this video source variation.  <a href="#afb198b8fd8c0fb9556f37c70c0874f62">More...</a><br/></td></tr>
<tr class="separator:afb198b8fd8c0fb9556f37c70c0874f62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4ae0ead39c7893fbccb6260f0cad0cc"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#af4ae0ead39c7893fbccb6260f0cad0cc">open</a> ()=0</td></tr>
<tr class="memdesc:af4ae0ead39c7893fbccb6260f0cad0cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens the video source.  <a href="#af4ae0ead39c7893fbccb6260f0cad0cc">More...</a><br/></td></tr>
<tr class="separator:af4ae0ead39c7893fbccb6260f0cad0cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bd5b94065f68293065275f371029fb1"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a9bd5b94065f68293065275f371029fb1">close</a> ()=0</td></tr>
<tr class="memdesc:a9bd5b94065f68293065275f371029fb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the video source.  <a href="#a9bd5b94065f68293065275f371029fb1">More...</a><br/></td></tr>
<tr class="separator:a9bd5b94065f68293065275f371029fb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adff6ccfd9f07c83094abbfa1d580db78"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#adff6ccfd9f07c83094abbfa1d580db78">captureFrame</a> ()=0</td></tr>
<tr class="memdesc:adff6ccfd9f07c83094abbfa1d580db78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Asks the video source to capture a frame.  <a href="#adff6ccfd9f07c83094abbfa1d580db78">More...</a><br/></td></tr>
<tr class="separator:adff6ccfd9f07c83094abbfa1d580db78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4aa1c837e84952450cf330d8dba86bfa"><td class="memItemLeft" align="right" valign="top">ARUint8 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a4aa1c837e84952450cf330d8dba86bfa">getFrame</a> ()</td></tr>
<tr class="memdesc:a4aa1c837e84952450cf330d8dba86bfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current frame.  <a href="#a4aa1c837e84952450cf330d8dba86bfa">More...</a><br/></td></tr>
<tr class="separator:a4aa1c837e84952450cf330d8dba86bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa99b09f155bf7db297be0262950e131d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#aa99b09f155bf7db297be0262950e131d">getFrameStamp</a> ()</td></tr>
<tr class="memdesc:aa99b09f155bf7db297be0262950e131d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current frame stamp.  <a href="#aa99b09f155bf7db297be0262950e131d">More...</a><br/></td></tr>
<tr class="separator:aa99b09f155bf7db297be0262950e131d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2b41d0ac135213d868f4491b33d3e1a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#aa2b41d0ac135213d868f4491b33d3e1a">updateTexture</a> (<a class="el" href="struct_color.html">Color</a> *buffer)</td></tr>
<tr class="memdesc:aa2b41d0ac135213d868f4491b33d3e1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Populates the provided color buffer with the current video frame.  <a href="#aa2b41d0ac135213d868f4491b33d3e1a">More...</a><br/></td></tr>
<tr class="separator:aa2b41d0ac135213d868f4491b33d3e1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3e908bae92d2b6573a1a82391c06600"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#ab3e908bae92d2b6573a1a82391c06600">fastPath</a> ()</td></tr>
<tr class="separator:ab3e908bae92d2b6573a1a82391c06600"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a664915a2d8a52c5cfb68a6d6fbf91ab4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a664915a2d8a52c5cfb68a6d6fbf91ab4">updateTexture32</a> (uint32_t *buffer)</td></tr>
<tr class="separator:a664915a2d8a52c5cfb68a6d6fbf91ab4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3215ae64e2830ee7b6a54f880d4ef863"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a3215ae64e2830ee7b6a54f880d4ef863">updateTextureGL</a> (int textureID)</td></tr>
<tr class="memdesc:a3215ae64e2830ee7b6a54f880d4ef863"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the specified OpenGL texture with the current video frame.  <a href="#a3215ae64e2830ee7b6a54f880d4ef863">More...</a><br/></td></tr>
<tr class="separator:a3215ae64e2830ee7b6a54f880d4ef863"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a7dcbcf758710a1ce55b0471077fe9111"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_video_source.html">VideoSource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a7dcbcf758710a1ce55b0471077fe9111">newVideoSource</a> ()</td></tr>
<tr class="memdesc:a7dcbcf758710a1ce55b0471077fe9111"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the correct <a class="el" href="class_video_source.html" title="Base class for different video source implementations.">VideoSource</a> subclass for use on the current platform.  <a href="#a7dcbcf758710a1ce55b0471077fe9111">More...</a><br/></td></tr>
<tr class="separator:a7dcbcf758710a1ce55b0471077fe9111"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr class="memitem:a2755c0fcd758d5407c61e4599198c128"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a2755c0fcd758d5407c61e4599198c128">DeviceState</a> { <a class="el" href="class_video_source.html#a2755c0fcd758d5407c61e4599198c128a1a05a7307aa94e90cbc1c6dd83fd9be6">DEVICE_CLOSED</a>, 
<a class="el" href="class_video_source.html#a2755c0fcd758d5407c61e4599198c128a7142f24394de522e832b3c5d55b67b55">DEVICE_OPEN</a>, 
<a class="el" href="class_video_source.html#a2755c0fcd758d5407c61e4599198c128a6ebccb3d4f4e4784fa1dc3ad977689b8">DEVICE_GETTING_READY</a>, 
<a class="el" href="class_video_source.html#a2755c0fcd758d5407c61e4599198c128a0dd9ac61b3c501ded6a5429247ceccf2">DEVICE_RUNNING</a>
 }</td></tr>
<tr class="separator:a2755c0fcd758d5407c61e4599198c128"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a051c1e0fca7fdb2cf2a3637a4dfe791c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a051c1e0fca7fdb2cf2a3637a4dfe791c">setError</a> (int error)</td></tr>
<tr class="separator:a051c1e0fca7fdb2cf2a3637a4dfe791c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13188e20ed4e4c99e39cd0faf82bad2e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a13188e20ed4e4c99e39cd0faf82bad2e">VideoSource</a> ()</td></tr>
<tr class="memdesc:a13188e20ed4e4c99e39cd0faf82bad2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The constructor is not public because instances are created using a factory method.  <a href="#a13188e20ed4e4c99e39cd0faf82bad2e">More...</a><br/></td></tr>
<tr class="separator:a13188e20ed4e4c99e39cd0faf82bad2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:acd88d68c8d2ced676444f5d86a5ee767"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_video_source.html#a2755c0fcd758d5407c61e4599198c128">DeviceState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#acd88d68c8d2ced676444f5d86a5ee767">deviceState</a></td></tr>
<tr class="memdesc:acd88d68c8d2ced676444f5d86a5ee767"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current state of the video device.  <a href="#acd88d68c8d2ced676444f5d86a5ee767">More...</a><br/></td></tr>
<tr class="separator:acd88d68c8d2ced676444f5d86a5ee767"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb1eb6e4e78fbd3492590e7c8368aa38"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#aeb1eb6e4e78fbd3492590e7c8368aa38">cameraParam</a></td></tr>
<tr class="memdesc:aeb1eb6e4e78fbd3492590e7c8368aa38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Camera parameter filename.  <a href="#aeb1eb6e4e78fbd3492590e7c8368aa38">More...</a><br/></td></tr>
<tr class="separator:aeb1eb6e4e78fbd3492590e7c8368aa38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0433f4c210a67765b87dc2104e6ccaa"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#ae0433f4c210a67765b87dc2104e6ccaa">cameraParamBuffer</a></td></tr>
<tr class="separator:ae0433f4c210a67765b87dc2104e6ccaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69e1da21f24a6895d19d9c81b8d7e973"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a69e1da21f24a6895d19d9c81b8d7e973">cameraParamBufferLen</a></td></tr>
<tr class="separator:a69e1da21f24a6895d19d9c81b8d7e973"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a7669858f6866ca205a46b7b8505be8"><td class="memItemLeft" align="right" valign="top">ARParamLT *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a2a7669858f6866ca205a46b7b8505be8">cparamLT</a></td></tr>
<tr class="memdesc:a2a7669858f6866ca205a46b7b8505be8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Camera paramaters.  <a href="#a2a7669858f6866ca205a46b7b8505be8">More...</a><br/></td></tr>
<tr class="separator:a2a7669858f6866ca205a46b7b8505be8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6beb28d92c2148ee3fb7d20255158fbf"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a6beb28d92c2148ee3fb7d20255158fbf">videoConfiguration</a></td></tr>
<tr class="memdesc:a6beb28d92c2148ee3fb7d20255158fbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Video configuration string.  <a href="#a6beb28d92c2148ee3fb7d20255158fbf">More...</a><br/></td></tr>
<tr class="separator:a6beb28d92c2148ee3fb7d20255158fbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ae59fc53c9203fe479f1f8c588f71a2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a1ae59fc53c9203fe479f1f8c588f71a2">videoWidth</a></td></tr>
<tr class="memdesc:a1ae59fc53c9203fe479f1f8c588f71a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Width of the video frame in pixels.  <a href="#a1ae59fc53c9203fe479f1f8c588f71a2">More...</a><br/></td></tr>
<tr class="separator:a1ae59fc53c9203fe479f1f8c588f71a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a921eb207b05a377e84a1f425ab5f6a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a3a921eb207b05a377e84a1f425ab5f6a">videoHeight</a></td></tr>
<tr class="memdesc:a3a921eb207b05a377e84a1f425ab5f6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Height of the video frame in pixels.  <a href="#a3a921eb207b05a377e84a1f425ab5f6a">More...</a><br/></td></tr>
<tr class="separator:a3a921eb207b05a377e84a1f425ab5f6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a827806681429582927ac13c6f373e1ca"><td class="memItemLeft" align="right" valign="top">AR_PIXEL_FORMAT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a827806681429582927ac13c6f373e1ca">pixelFormat</a></td></tr>
<tr class="memdesc:a827806681429582927ac13c6f373e1ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pixel format from ARToolKit enumeration.  <a href="#a827806681429582927ac13c6f373e1ca">More...</a><br/></td></tr>
<tr class="separator:a827806681429582927ac13c6f373e1ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add3b6650477bfd8686330f2a7bf9b421"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#add3b6650477bfd8686330f2a7bf9b421">m_fastPath</a></td></tr>
<tr class="separator:add3b6650477bfd8686330f2a7bf9b421"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf0477157bda240c414ef6b84f9ccccf"><td class="memItemLeft" align="right" valign="top">GLenum&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#acf0477157bda240c414ef6b84f9ccccf">glPixIntFormat</a></td></tr>
<tr class="separator:acf0477157bda240c414ef6b84f9ccccf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58cdec9f9dcc76c3107703e017ce83fc"><td class="memItemLeft" align="right" valign="top">GLenum&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a58cdec9f9dcc76c3107703e017ce83fc">glPixFormat</a></td></tr>
<tr class="separator:a58cdec9f9dcc76c3107703e017ce83fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a637d538226b938bd7549b38d1951f118"><td class="memItemLeft" align="right" valign="top">GLenum&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a637d538226b938bd7549b38d1951f118">glPixType</a></td></tr>
<tr class="separator:a637d538226b938bd7549b38d1951f118"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba22b2ecb8dac722d61133e05b91de67"><td class="memItemLeft" align="right" valign="top">ARUint8 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#aba22b2ecb8dac722d61133e05b91de67">frameBuffer</a></td></tr>
<tr class="memdesc:aba22b2ecb8dac722d61133e05b91de67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to latest frame. Set by concrete subclass to point to frame data.  <a href="#aba22b2ecb8dac722d61133e05b91de67">More...</a><br/></td></tr>
<tr class="separator:aba22b2ecb8dac722d61133e05b91de67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f660cd0cb8a2a881e89a24ea7d41b6e"><td class="memItemLeft" align="right" valign="top">ARUint8 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a9f660cd0cb8a2a881e89a24ea7d41b6e">frameBuffer2</a></td></tr>
<tr class="memdesc:a9f660cd0cb8a2a881e89a24ea7d41b6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">For bi-planar formats, pointer to plane 2 of latest frame. Set by concrete subclass to point to frame data.  <a href="#a9f660cd0cb8a2a881e89a24ea7d41b6e">More...</a><br/></td></tr>
<tr class="separator:a9f660cd0cb8a2a881e89a24ea7d41b6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4cd6f08ee44690a778a2b3aaefef380"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#ad4cd6f08ee44690a778a2b3aaefef380">frameStamp</a></td></tr>
<tr class="memdesc:ad4cd6f08ee44690a778a2b3aaefef380"><td class="mdescLeft">&#160;</td><td class="mdescRight">Latest framestamp. Incremented in the concrete subclass when a new frame arrives.  <a href="#ad4cd6f08ee44690a778a2b3aaefef380">More...</a><br/></td></tr>
<tr class="separator:ad4cd6f08ee44690a778a2b3aaefef380"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b4216eef3515ec23ee509158fa4faf3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_video_source.html#a2b4216eef3515ec23ee509158fa4faf3">m_error</a></td></tr>
<tr class="separator:a2b4216eef3515ec23ee509158fa4faf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Base class for different video source implementations. </p>
<p>A video source provides video frames to the ARToolKit tracking module. Video sources contain information about the video, such as size and pixel format, camera parameters for distortion compensation, as well as the raw video data itself. Different video source implementations are required to provide a standard interface for video input, even though different platforms handle video input quite differently. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a class="anchor" id="a2755c0fcd758d5407c61e4599198c128"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="class_video_source.html#a2755c0fcd758d5407c61e4599198c128">VideoSource::DeviceState</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a2755c0fcd758d5407c61e4599198c128a1a05a7307aa94e90cbc1c6dd83fd9be6"></a>DEVICE_CLOSED</em>&nbsp;</td><td class="fielddoc">
<p>Device is closed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a2755c0fcd758d5407c61e4599198c128a7142f24394de522e832b3c5d55b67b55"></a>DEVICE_OPEN</em>&nbsp;</td><td class="fielddoc">
<p>Device is open. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a2755c0fcd758d5407c61e4599198c128a6ebccb3d4f4e4784fa1dc3ad977689b8"></a>DEVICE_GETTING_READY</em>&nbsp;</td><td class="fielddoc">
<p>Device is moving from open to running. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a2755c0fcd758d5407c61e4599198c128a0dd9ac61b3c501ded6a5429247ceccf2"></a>DEVICE_RUNNING</em>&nbsp;</td><td class="fielddoc">
<p>Device is open and able to be queried. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a13188e20ed4e4c99e39cd0faf82bad2e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">VideoSource::VideoSource </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The constructor is not public because instances are created using a factory method. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_video_source.html#a7dcbcf758710a1ce55b0471077fe9111" title="Returns the correct VideoSource subclass for use on the current platform.">newVideoSource()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a8eb957864ca6d7c17532a7a5926024d2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">VideoSource::~VideoSource </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="adff6ccfd9f07c83094abbfa1d580db78"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool VideoSource::captureFrame </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Asks the video source to capture a frame. </p>
<p>This method must be provided by the subclass. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the video source captured a frame, otherwise false </dd></dl>

<p>Implemented in <a class="el" href="class_android_video_source.html#aa5b9ec62f730dc92cb392e4c6b89ceca">AndroidVideoSource</a>, and <a class="el" href="class_a_r_tool_kit_video_source.html#a78f643271ea5e22a952fd32acd6d4ef4">ARToolKitVideoSource</a>.</p>

</div>
</div>
<a class="anchor" id="a9bd5b94065f68293065275f371029fb1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool VideoSource::close </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Closes the video source. </p>
<p>This method must be provided by the subclass. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the video source was closed successfully, otherwise false. </dd></dl>

<p>Implemented in <a class="el" href="class_android_video_source.html#ad712c1b6f2999147bac25269940a9321">AndroidVideoSource</a>, and <a class="el" href="class_a_r_tool_kit_video_source.html#a1cbdb50793dc4f16d6030fee9cc7606f">ARToolKitVideoSource</a>.</p>

</div>
</div>
<a class="anchor" id="a8c08a6152d930c5504444e13e6c12b11"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VideoSource::configure </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>vconf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cparaName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cparaBuff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>cparaBuffLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><pre class="fragment">Sets initial parameters which will be used when the video source
</pre><p> is opened. </p>

</div>
</div>
<a class="anchor" id="ab3e908bae92d2b6573a1a82391c06600"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool VideoSource::fastPath </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a4cb10a2276edfe49376ac666a05f1f3c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ARParamLT * VideoSource::getCameraParameters </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the camera parameters for the video source. </p>
<dl class="section return"><dt>Returns</dt><dd>the camera parameters </dd></dl>

</div>
</div>
<a class="anchor" id="afdcbad266f06a6ee07ecb8ce2873e871"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int VideoSource::getError </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a4aa1c837e84952450cf330d8dba86bfa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ARUint8 * VideoSource::getFrame </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the current frame. </p>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the buffer containing the current video frame </dd></dl>

</div>
</div>
<a class="anchor" id="aa99b09f155bf7db297be0262950e131d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int VideoSource::getFrameStamp </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the current frame stamp. </p>
<p>If the returned value has changed since the last time this function was called, then the caller can assume a new frame is available. </p>
<dl class="section return"><dt>Returns</dt><dd>The current frame stamp, incremented on each new frame arrival </dd></dl>

</div>
</div>
<a class="anchor" id="afb198b8fd8c0fb9556f37c70c0874f62"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* VideoSource::getName </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the name of this video source variation. </p>
<p>This method must be provided by the subclass. </p>
<dl class="section return"><dt>Returns</dt><dd>Name of the video source </dd></dl>

<p>Implemented in <a class="el" href="class_android_video_source.html#a6838c1816fb65eb2482a5a9c88dc20d3">AndroidVideoSource</a>, and <a class="el" href="class_a_r_tool_kit_video_source.html#acb47cedc00ae9ba8c4b4718ad41c4be5">ARToolKitVideoSource</a>.</p>

</div>
</div>
<a class="anchor" id="a259eb37d6fc60aafb18f5f4343c7f445"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AR_PIXEL_FORMAT VideoSource::getPixelFormat </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the pixel format of the video. </p>
<dl class="section return"><dt>Returns</dt><dd>Pixel format of the video </dd></dl>

</div>
</div>
<a class="anchor" id="acb3abb2d4c5a9b5c1430ac4a93e41df6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int VideoSource::getVideoHeight </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the height of the video in pixels. </p>
<dl class="section return"><dt>Returns</dt><dd>Height of the video in pixels </dd></dl>

</div>
</div>
<a class="anchor" id="ac59ab12ce7c377df421e8c4d80e6f013"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int VideoSource::getVideoWidth </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the width of the video in pixels. </p>
<dl class="section return"><dt>Returns</dt><dd>Width of the video in pixels </dd></dl>

</div>
</div>
<a class="anchor" id="a8936c5ae65f673316a994e97c00caf82"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool VideoSource::isOpen </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns true if the video source is open. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the video source is open </dd></dl>

</div>
</div>
<a class="anchor" id="a00107388291e281660e316699f699e47"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool VideoSource::isRunning </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns true if the video source is open and ready to be queried. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the video source is open and frame details are known </dd></dl>

</div>
</div>
<a class="anchor" id="a7dcbcf758710a1ce55b0471077fe9111"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_video_source.html">VideoSource</a> * VideoSource::newVideoSource </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the correct <a class="el" href="class_video_source.html" title="Base class for different video source implementations.">VideoSource</a> subclass for use on the current platform. </p>
<dl class="section return"><dt>Returns</dt><dd>New instance of an appropriate <a class="el" href="class_video_source.html" title="Base class for different video source implementations.">VideoSource</a> </dd></dl>

</div>
</div>
<a class="anchor" id="af4ae0ead39c7893fbccb6260f0cad0cc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool VideoSource::open </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Opens the video source. </p>
<p>This method must be provided by the subclass. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the video source was opened successfully, false if a fatal error occured. </dd></dl>

<p>Implemented in <a class="el" href="class_android_video_source.html#a95fcb3da7e9fc14b36ea75eb5414634e">AndroidVideoSource</a>, and <a class="el" href="class_a_r_tool_kit_video_source.html#aa84f28fd9d56992eb0e348c23cfa4083">ARToolKitVideoSource</a>.</p>

</div>
</div>
<a class="anchor" id="a051c1e0fca7fdb2cf2a3637a4dfe791c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void VideoSource::setError </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>error</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="aa2b41d0ac135213d868f4491b33d3e1a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool VideoSource::updateTexture </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_color.html">Color</a> *&#160;</td>
          <td class="paramname"><em>buffer</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Populates the provided color buffer with the current video frame. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buffer</td><td>The color buffer to populate with frame data </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the buffer was updated successfully, otherwise false </dd></dl>

</div>
</div>
<a class="anchor" id="a664915a2d8a52c5cfb68a6d6fbf91ab4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool VideoSource::updateTexture32 </td>
          <td>(</td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>buffer</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a3215ae64e2830ee7b6a54f880d4ef863"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void VideoSource::updateTextureGL </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>textureID</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Updates the specified OpenGL texture with the current video frame. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">textureID</td><td>The OpenGL texture ID to which the video frame should be uploaded </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="aeb1eb6e4e78fbd3492590e7c8368aa38"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">char* VideoSource::cameraParam</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Camera parameter filename. </p>

</div>
</div>
<a class="anchor" id="ae0433f4c210a67765b87dc2104e6ccaa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">char* VideoSource::cameraParamBuffer</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a69e1da21f24a6895d19d9c81b8d7e973"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_t VideoSource::cameraParamBufferLen</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a2a7669858f6866ca205a46b7b8505be8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">ARParamLT* VideoSource::cparamLT</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Camera paramaters. </p>

</div>
</div>
<a class="anchor" id="acd88d68c8d2ced676444f5d86a5ee767"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_video_source.html#a2755c0fcd758d5407c61e4599198c128">DeviceState</a> VideoSource::deviceState</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Current state of the video device. </p>

</div>
</div>
<a class="anchor" id="aba22b2ecb8dac722d61133e05b91de67"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">ARUint8* VideoSource::frameBuffer</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Pointer to latest frame. Set by concrete subclass to point to frame data. </p>

</div>
</div>
<a class="anchor" id="a9f660cd0cb8a2a881e89a24ea7d41b6e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">ARUint8* VideoSource::frameBuffer2</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>For bi-planar formats, pointer to plane 2 of latest frame. Set by concrete subclass to point to frame data. </p>

</div>
</div>
<a class="anchor" id="ad4cd6f08ee44690a778a2b3aaefef380"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int VideoSource::frameStamp</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Latest framestamp. Incremented in the concrete subclass when a new frame arrives. </p>

</div>
</div>
<a class="anchor" id="a58cdec9f9dcc76c3107703e017ce83fc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">GLenum VideoSource::glPixFormat</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="acf0477157bda240c414ef6b84f9ccccf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">GLenum VideoSource::glPixIntFormat</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a637d538226b938bd7549b38d1951f118"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">GLenum VideoSource::glPixType</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a2b4216eef3515ec23ee509158fa4faf3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int VideoSource::m_error</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="add3b6650477bfd8686330f2a7bf9b421"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int VideoSource::m_fastPath</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a827806681429582927ac13c6f373e1ca"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">AR_PIXEL_FORMAT VideoSource::pixelFormat</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Pixel format from ARToolKit enumeration. </p>

</div>
</div>
<a class="anchor" id="a6beb28d92c2148ee3fb7d20255158fbf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">char* VideoSource::videoConfiguration</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Video configuration string. </p>

</div>
</div>
<a class="anchor" id="a3a921eb207b05a377e84a1f425ab5f6a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int VideoSource::videoHeight</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Height of the video frame in pixels. </p>

</div>
</div>
<a class="anchor" id="a1ae59fc53c9203fe479f1f8c588f71a2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int VideoSource::videoWidth</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Width of the video frame in pixels. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>include/ARWrapper/<a class="el" href="_video_source_8h_source.html">VideoSource.h</a></li>
<li>lib/SRC/ARWrapper/<a class="el" href="_video_source_8cpp.html">VideoSource.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 23 2016 17:24:25 for ARWrapper by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3.1
</small></address>
</body>
</html>
